<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>普通HTML窗体</title>
<link rel="stylesheet" type="text/css" href="/css.css" />
<script type="text/javascript" src="/lib/air1.5/AIRAliases.js"></script>

<style type="text/css">
.style1 {
	text-align: center;
}
</style>

</head>
<body >
<div style="overflow:auto;height:100%;">
<h1 class="style1">普通HTML窗体</h1>
<p>普通HTML窗体很简单，就是使用系统的窗体样式（指系统窗体镶边）显示HTML内空，这对使用WEB技术开发AIR应用程序的朋友来说是一个好消息。</p>
<p>这里也顺便说一下AIR窗体外观上的几个重要的特性：</p>
<ul>
	<li>systemChrome ：控制窗体的系统镶边，可以是air.NativeWindowSystemChrome.NONE 或air.NativeWindowSystemChrome.STANDARD 
	(默认)</li>
	<li>type ：窗体的类型，normal （普通，典型窗口 ） 、utility （实用程序，适用于工具面板 ） 、lightweight 
	（简单，适用于通知气泡和控件 ） </li>
	<li>transparent ：窗体背景是否透明</li>
</ul>
<p>如何使用这三种选项来创建窗体会在下面介绍，先介绍一下使用这三个配置项的注意事项：</p>
<ol>
	<li>systemChrome 与type 选项在窗体实例化以后是不可更改的。</li>
	<li>当 transparent 为 true 或 type 为 lightweight 时，不支持将 systemChrome 设置为 
	standard 。</li>
	<li>transparent 可以使窗体透明，但默认不会使HTML BODY的背景也透明，若要达到这一效果，可以使用window.htmlLoader.paintsDefaultBackground 
	= false; </li>
</ol>
<p>窗体初始化可指定的属性：</p>
<table style="width: 80%">
	<tr>
		<td style="width:50%">属性&nbsp; </td>
		<td style="width:50%">默认值</td>
	</tr>
	<tr>
		<td>systemChrome </td>
		<td>standard </td>
	</tr>
	<tr>
		<td>type </td>
		<td>normal </td>
	</tr>
	<tr>
		<td>transparent </td>
		<td>false </td>
	</tr>
	<tr>
		<td>maximizable </td>
		<td>true </td>
	</tr>
	<tr>
		<td>minimizable </td>
		<td>true </td>
	</tr>
	<tr>
		<td>resizable </td>
		<td>true </td>
	</tr>
</table>
<p>创建HTML窗体的三种方法：</p>
<ul>
	<li>window.open</li>
</ul>
<p>这是一种最简单的方法，其实使用方法与在浏览器中的使用方法很相似，实际上HTML窗体本身就为HTML开发人员模拟了一个与浏览器上非常相似的window对象，这样才要可以方便的将HTML应用转换为AIR应用。当然它也有不同之处，比如支持runtime、nativeWindow属性等。直接使用这种方式打开一个窗体会自动使用系统镶边，另外AIR也提供了如何自定义window.open窗体的打开的样式的方法，详细请参见<a href="http://help.adobe.com/zh_CN/AIR/1.5/devappshtml/">《HTML 
和 Ajax 开发 AdobeAIR》</a>一文。</p>
<ul>
	<li>直接实例化NativeWindow对象</li>
</ul>
<p>这种方式是通过AIR本身提供的NativeWindow来创建一个原生窗体，在创建时我按我们的意愿随意配置上述窗体的配置选项，例如：</p>
<p>//初始化配置参数</p>
<p>&nbsp;var options = new air.NativeWindowInitOptions(); </p>
<p>options.transparent = false; </p>
<p>options.systemChrome = air.NativeWindowSystemChrome.STANDARD ; </p>
<p>options.type = air.NativeWindowType.NORMAL; </p>
<p>//创建窗体</p>
<p>&nbsp;var newWindow = new air.NativeWindow(options); </p>
<p>newWindow.title = title; newWindow.width = width;</p>
<p>&nbsp;newWindow.height = height; </p>
<p>//激活窗体</p>
<p>newWindow.activate(); </p>
<p>从上面的代码可以看出，创建一个窗体其实很简单，一、选建立配置对象并设置配置项。二、使用配置对象来创建窗体。三、最后将窗体激活显示出来。</p>
<ul>
	<li>&nbsp;通过HTMLLoader创建窗体 </li>
</ul>
<p>
第二种方法虽然可以按照自己的意愿来创建窗体，但您可以发现我并没有向窗体中添加任何内容，原因是笔者感觉这种方式很麻烦，那么显然AIR已经考虑到了这一点，所以提供这第三种方式，使我们可以自定义窗体的样式，又可以方便的以HTML内容作为显示窗体中的内容。具体方式请参考以下代码： 
</p>
<p>//初始化配置参数 </p>
<p>var options = new air.NativeWindowInitOptions(); </p>
<p>options.transparent = transparent;</p>
<p>&nbsp;options.systemChrome = chrome; </p>
<p>options.type = type; </p>
<p>//创建窗体 </p>
<p>var loader = window.runtime.flash.html.HTMLLoader.createRootWindow(false, 
options, false);</p>
<p>&nbsp;loader.load(new air.URLRequest(file));</p>
</div>
</body>
</html>